{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Softmax exercise\n",
    "\n",
    "*Complete and hand in this completed worksheet (including its outputs and any supporting code outside of the worksheet) with your assignment submission. For more details see the [assignments page](http://vision.stanford.edu/teaching/cs231n/assignments.html) on the course website.*\n",
    "\n",
    "This exercise is analogous to the SVM exercise. You will:\n",
    "\n",
    "- implement a fully-vectorized **loss function** for the Softmax classifier\n",
    "- implement the fully-vectorized expression for its **analytic gradient**\n",
    "- **check your implementation** with numerical gradient\n",
    "- use a validation set to **tune the learning rate and regularization** strength\n",
    "- **optimize** the loss function with **SGD**\n",
    "- **visualize** the final learned weights\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "import random\n",
    "import numpy as np\n",
    "from cs231n.data_utils import load_CIFAR10\n",
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline\n",
    "plt.rcParams['figure.figsize'] = (10.0, 8.0) # set default size of plots\n",
    "plt.rcParams['image.interpolation'] = 'nearest'\n",
    "plt.rcParams['image.cmap'] = 'gray'\n",
    "\n",
    "# for auto-reloading extenrnal modules\n",
    "# see http://stackoverflow.com/questions/1907993/autoreload-of-modules-in-ipython\n",
    "%load_ext autoreload\n",
    "%autoreload 2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Train data shape:  (49000, 3073)\n",
      "Train labels shape:  (49000,)\n",
      "Validation data shape:  (1000, 3073)\n",
      "Validation labels shape:  (1000,)\n",
      "Test data shape:  (1000, 3073)\n",
      "Test labels shape:  (1000,)\n",
      "dev data shape:  (500, 3073)\n",
      "dev labels shape:  (500,)\n"
     ]
    }
   ],
   "source": [
    "def get_CIFAR10_data(num_training=49000, num_validation=1000, num_test=1000, num_dev=500):\n",
    "  \"\"\"\n",
    "  Load the CIFAR-10 dataset from disk and perform preprocessing to prepare\n",
    "  it for the linear classifier. These are the same steps as we used for the\n",
    "  SVM, but condensed to a single function.  \n",
    "  \"\"\"\n",
    "  # Load the raw CIFAR-10 data\n",
    "  cifar10_dir = 'cs231n/datasets/cifar-10-batches-py'\n",
    "  X_train, y_train, X_test, y_test = load_CIFAR10(cifar10_dir)\n",
    "  \n",
    "  # subsample the data\n",
    "  mask = range(num_training, num_training + num_validation)\n",
    "  X_val = X_train[mask]\n",
    "  y_val = y_train[mask]\n",
    "  mask = range(num_training)\n",
    "  X_train = X_train[mask]\n",
    "  y_train = y_train[mask]\n",
    "  mask = range(num_test)\n",
    "  X_test = X_test[mask]\n",
    "  y_test = y_test[mask]\n",
    "  mask = np.random.choice(num_training, num_dev, replace=False)\n",
    "  X_dev = X_train[mask]\n",
    "  y_dev = y_train[mask]\n",
    "  \n",
    "  # Preprocessing: reshape the image data into rows\n",
    "  X_train = np.reshape(X_train, (X_train.shape[0], -1))\n",
    "  X_val = np.reshape(X_val, (X_val.shape[0], -1))\n",
    "  X_test = np.reshape(X_test, (X_test.shape[0], -1))\n",
    "  X_dev = np.reshape(X_dev, (X_dev.shape[0], -1))\n",
    "  \n",
    "  # Normalize the data: subtract the mean image\n",
    "  mean_image = np.mean(X_train, axis = 0)\n",
    "  X_train -= mean_image\n",
    "  X_val -= mean_image\n",
    "  X_test -= mean_image\n",
    "  X_dev -= mean_image\n",
    "  \n",
    "  # add bias dimension and transform into columns\n",
    "  X_train = np.hstack([X_train, np.ones((X_train.shape[0], 1))])\n",
    "  X_val = np.hstack([X_val, np.ones((X_val.shape[0], 1))])\n",
    "  X_test = np.hstack([X_test, np.ones((X_test.shape[0], 1))])\n",
    "  X_dev = np.hstack([X_dev, np.ones((X_dev.shape[0], 1))])\n",
    "  \n",
    "  return X_train, y_train, X_val, y_val, X_test, y_test, X_dev, y_dev\n",
    "\n",
    "\n",
    "# Invoke the above function to get our data.\n",
    "X_train, y_train, X_val, y_val, X_test, y_test, X_dev, y_dev = get_CIFAR10_data()\n",
    "print ('Train data shape: ', X_train.shape)\n",
    "print ('Train labels shape: ', y_train.shape)\n",
    "print ('Validation data shape: ', X_val.shape)\n",
    "print ('Validation labels shape: ', y_val.shape)\n",
    "print ('Test data shape: ', X_test.shape)\n",
    "print ('Test labels shape: ', y_test.shape)\n",
    "print ('dev data shape: ', X_dev.shape)\n",
    "print ('dev labels shape: ', y_dev.shape)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Softmax Classifier\n",
    "\n",
    "Your code for this section will all be written inside **cs231n/classifiers/softmax.py**. \n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "loss: 2.366289\n",
      "sanity check: 2.302585\n"
     ]
    }
   ],
   "source": [
    "# First implement the naive softmax loss function with nested loops.\n",
    "# Open the file cs231n/classifiers/softmax.py and implement the\n",
    "# softmax_loss_naive function.\n",
    "\n",
    "from cs231n.classifiers.softmax import softmax_loss_naive\n",
    "import time\n",
    "\n",
    "# Generate a random softmax weight matrix and use it to compute the loss.\n",
    "W = np.random.randn(3073, 10) * 0.0001\n",
    "loss, grad = softmax_loss_naive(W, X_dev, y_dev, 0.0)\n",
    "\n",
    "# As a rough sanity check, our loss should be something close to -log(0.1).\n",
    "print ('loss: %f' % loss)\n",
    "print ('sanity check: %f' % (-np.log(0.1)))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Inline Question 1:\n",
    "Why do we expect our loss to be close to -log(0.1)? Explain briefly.**\n",
    "\n",
    "**Your answer:** *Fill this in*\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "numerical: -2.285339 analytic: -2.285339, relative error: 1.167712e-09\n",
      "numerical: -1.260503 analytic: -1.260503, relative error: 1.512191e-08\n",
      "numerical: -1.871363 analytic: -1.871363, relative error: 1.508245e-08\n",
      "numerical: 0.539968 analytic: 0.539967, relative error: 1.538352e-07\n",
      "numerical: 0.481783 analytic: 0.481783, relative error: 1.156578e-07\n",
      "numerical: -2.783531 analytic: -2.783531, relative error: 8.477535e-09\n",
      "numerical: -0.205941 analytic: -0.205941, relative error: 2.256981e-07\n",
      "numerical: -1.949412 analytic: -1.949412, relative error: 3.894809e-09\n",
      "numerical: -2.268299 analytic: -2.268299, relative error: 1.679754e-08\n",
      "numerical: -0.432879 analytic: -0.432879, relative error: 2.963490e-08\n",
      "numerical: -0.356227 analytic: -0.356227, relative error: 2.045983e-07\n",
      "numerical: -0.203587 analytic: -0.203587, relative error: 1.350794e-07\n",
      "numerical: -0.749300 analytic: -0.749300, relative error: 8.935896e-09\n",
      "numerical: 2.508473 analytic: 2.508473, relative error: 2.444022e-08\n",
      "numerical: 0.851976 analytic: 0.851976, relative error: 4.155470e-08\n",
      "numerical: 0.411308 analytic: 0.411308, relative error: 5.826508e-08\n",
      "numerical: 2.109224 analytic: 2.109224, relative error: 3.005437e-08\n",
      "numerical: 2.056757 analytic: 2.056757, relative error: 2.053260e-08\n",
      "numerical: 1.950063 analytic: 1.950063, relative error: 3.769565e-08\n",
      "numerical: 2.864419 analytic: 2.864419, relative error: 1.073375e-08\n"
     ]
    }
   ],
   "source": [
    "# Complete the implementation of softmax_loss_naive and implement a (naive)\n",
    "# version of the gradient that uses nested loops.\n",
    "loss, grad = softmax_loss_naive(W, X_dev, y_dev, 0.0)\n",
    "\n",
    "# As we did for the SVM, use numeric gradient checking as a debugging tool.\n",
    "# The numeric gradient should be close to the analytic gradient.\n",
    "from cs231n.gradient_check import grad_check_sparse\n",
    "f = lambda w: softmax_loss_naive(w, X_dev, y_dev, 0.0)[0]\n",
    "grad_numerical = grad_check_sparse(f, W, grad, 10)\n",
    "\n",
    "# similar to SVM case, do another gradient check with regularization\n",
    "loss, grad = softmax_loss_naive(W, X_dev, y_dev, 1e2)\n",
    "f = lambda w: softmax_loss_naive(w, X_dev, y_dev, 1e2)[0]\n",
    "grad_numerical = grad_check_sparse(f, W, grad, 10)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "naive loss: 2.366289e+00 computed in 0.131007s\n",
      "vectorized loss: 2.366289e+00 computed in 0.016001s\n",
      "Loss difference: 0.000000\n",
      "Gradient difference: 0.000000\n"
     ]
    }
   ],
   "source": [
    "# Now that we have a naive implementation of the softmax loss function and its gradient,\n",
    "# implement a vectorized version in softmax_loss_vectorized.\n",
    "# The two versions should compute the same results, but the vectorized version should be\n",
    "# much faster.\n",
    "tic = time.time()\n",
    "loss_naive, grad_naive = softmax_loss_naive(W, X_dev, y_dev, 0.00001)\n",
    "toc = time.time()\n",
    "print ('naive loss: %e computed in %fs' % (loss_naive, toc - tic))\n",
    "\n",
    "from cs231n.classifiers.softmax import softmax_loss_vectorized\n",
    "tic = time.time()\n",
    "loss_vectorized, grad_vectorized = softmax_loss_vectorized(W, X_dev, y_dev, 0.00001)\n",
    "toc = time.time()\n",
    "print ('vectorized loss: %e computed in %fs' % (loss_vectorized, toc - tic))\n",
    "\n",
    "# As we did for the SVM, we use the Frobenius norm to compare the two versions\n",
    "# of the gradient.\n",
    "grad_difference = np.linalg.norm(grad_naive - grad_vectorized, ord='fro')\n",
    "print ('Loss difference: %f' % np.abs(loss_naive - loss_vectorized))\n",
    "print ('Gradient difference: %f' % grad_difference)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "iteration 0 / 1500: loss 770.280172\n",
      "iteration 100 / 1500: loss 282.944675\n",
      "iteration 200 / 1500: loss 104.875349\n",
      "iteration 300 / 1500: loss 39.761000\n",
      "iteration 400 / 1500: loss 15.812628\n",
      "iteration 500 / 1500: loss 7.116471\n",
      "iteration 600 / 1500: loss 3.979439\n",
      "iteration 700 / 1500: loss 2.784889\n",
      "iteration 800 / 1500: loss 2.332203\n",
      "iteration 900 / 1500: loss 2.165719\n",
      "iteration 1000 / 1500: loss 2.143674\n",
      "iteration 1100 / 1500: loss 2.101390\n",
      "iteration 1200 / 1500: loss 2.071048\n",
      "iteration 1300 / 1500: loss 2.073094\n",
      "iteration 1400 / 1500: loss 2.083949\n",
      "iteration 0 / 1500: loss 15257.948985\n",
      "iteration 100 / 1500: loss 2.261951\n",
      "iteration 200 / 1500: loss 2.278159\n",
      "iteration 300 / 1500: loss 2.282944\n",
      "iteration 400 / 1500: loss 2.271348\n",
      "iteration 500 / 1500: loss 2.270716\n",
      "iteration 600 / 1500: loss 2.283013\n",
      "iteration 700 / 1500: loss 2.261185\n",
      "iteration 800 / 1500: loss 2.280340\n",
      "iteration 900 / 1500: loss 2.277393\n",
      "iteration 1000 / 1500: loss 2.283521\n",
      "iteration 1100 / 1500: loss 2.266386\n",
      "iteration 1200 / 1500: loss 2.283356\n",
      "iteration 1300 / 1500: loss 2.281285\n",
      "iteration 1400 / 1500: loss 2.272961\n",
      "iteration 0 / 1500: loss 775.139941\n",
      "iteration 100 / 1500: loss 6.910695\n",
      "iteration 200 / 1500: loss 2.107913\n",
      "iteration 300 / 1500: loss 2.099645\n",
      "iteration 400 / 1500: loss 2.142650\n",
      "iteration 500 / 1500: loss 2.122949\n",
      "iteration 600 / 1500: loss 2.102902\n",
      "iteration 700 / 1500: loss 2.124440\n",
      "iteration 800 / 1500: loss 2.088029\n",
      "iteration 900 / 1500: loss 2.048974\n",
      "iteration 1000 / 1500: loss 2.094000\n",
      "iteration 1100 / 1500: loss 2.124950\n",
      "iteration 1200 / 1500: loss 2.187404\n",
      "iteration 1300 / 1500: loss 2.085229\n",
      "iteration 1400 / 1500: loss 2.053384\n",
      "iteration 0 / 1500: loss 15383.123913\n",
      "iteration 100 / 1500: loss 2.287355\n",
      "iteration 200 / 1500: loss 2.267850\n",
      "iteration 300 / 1500: loss 2.271593\n",
      "iteration 400 / 1500: loss 2.285635\n",
      "iteration 500 / 1500: loss 2.284479\n",
      "iteration 600 / 1500: loss 2.272252\n",
      "iteration 700 / 1500: loss 2.268337\n",
      "iteration 800 / 1500: loss 2.275669\n",
      "iteration 900 / 1500: loss 2.278569\n",
      "iteration 1000 / 1500: loss 2.283993\n",
      "iteration 1100 / 1500: loss 2.286315\n",
      "iteration 1200 / 1500: loss 2.268704\n",
      "iteration 1300 / 1500: loss 2.283899\n",
      "iteration 1400 / 1500: loss 2.280728\n",
      "lr 1.000000e-07 reg 5.000000e+04 train accuracy: 0.312755 val accuracy: 0.330000\n",
      "lr 1.000000e-07 reg 1.000000e+06 train accuracy: 0.270714 val accuracy: 0.283000\n",
      "lr 5.000000e-07 reg 5.000000e+04 train accuracy: 0.319816 val accuracy: 0.341000\n",
      "lr 5.000000e-07 reg 1.000000e+06 train accuracy: 0.237163 val accuracy: 0.242000\n",
      "best validation accuracy achieved during cross-validation: 0.341000\n"
     ]
    }
   ],
   "source": [
    "# Use the validation set to tune hyperparameters (regularization strength and\n",
    "# learning rate). You should experiment with different ranges for the learning\n",
    "# rates and regularization strengths; if you are careful you should be able to\n",
    "# get a classification accuracy of over 0.35 on the validation set.\n",
    "from cs231n.classifiers import Softmax\n",
    "results = {}\n",
    "best_val = -1\n",
    "best_softmax = None\n",
    "learning_rates = [1e-7, 5e-7]\n",
    "regularization_strengths = [5e4, 1e6]\n",
    "\n",
    "################################################################################\n",
    "# TODO:                                                                        #\n",
    "# Use the validation set to set the learning rate and regularization strength. #\n",
    "# This should be identical to the validation that you did for the SVM; save    #\n",
    "# the best trained softmax classifer in best_softmax.                          #\n",
    "################################################################################\n",
    "for lr in learning_rates:\n",
    "    for rs in regularization_strengths:\n",
    "        sm = Softmax()\n",
    "        loss_hist = sm.train(X_train, y_train, learning_rate=lr, reg=rs, num_iters=1500, verbose=True)\n",
    "        y_train_pred = sm.predict(X_train)\n",
    "        acc_tr = np.mean(y_train == y_train_pred)\n",
    "        y_val_pred = sm.predict(X_val)\n",
    "        acc_val = np.mean(y_val == y_val_pred)\n",
    "        \n",
    "        results[(lr, rs)] = (acc_tr, acc_val)\n",
    "        if acc_val > best_val:\n",
    "            best_val = acc_val\n",
    "            best_softmax = sm\n",
    "################################################################################\n",
    "#                              END OF YOUR CODE                                #\n",
    "################################################################################\n",
    "    \n",
    "# Print out results.\n",
    "for lr, reg in sorted(results):\n",
    "    train_accuracy, val_accuracy = results[(lr, reg)]\n",
    "    print ('lr %e reg %e train accuracy: %f val accuracy: %f' % (\n",
    "                lr, reg, train_accuracy, val_accuracy))\n",
    "    \n",
    "print ('best validation accuracy achieved during cross-validation: %f' % best_val)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "softmax on raw pixels final test set accuracy: 0.339000\n"
     ]
    }
   ],
   "source": [
    "# evaluate on test set\n",
    "# Evaluate the best softmax on test set\n",
    "y_test_pred = best_softmax.predict(X_test)\n",
    "test_accuracy = np.mean(y_test == y_test_pred)\n",
    "print ('softmax on raw pixels final test set accuracy: %f' % (test_accuracy, ))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nSdosFzSSJEmSNssFjSRJkqTNckEjSZIkabNc0EiSJEnaLBc0kiRJkjbLBY0kSZKkzXJBI0mSJGmz\nXNBIkiRJ2iwXNJIkSZI2ywWNJEmSpM1yQSNJkiRps1zQSJIkSdosFzSSJEmSNssFjSRJkqTNckEj\nSZIkabNc0EiSJEnaLBc0kiRJkjbLBY0kSZKkzXJBI0mSJGmzXNBIkiRJ2iwXNJIkSZI2ywWNJEmS\npM1yQSNJkiRps1zQSJIkSdosFzSSJEmSNssFjSRJkqTNckEjSZIkabNc0EiSJEnaLBc0kiRJkjbL\nBY0kSZKkzXJBI0mSJGmzXNBIkiRJ2iwXNJIkSZI2ywWNJEmSpM1yQSNJkiRps1zQSJIkSdosFzSS\nJEmSNssFjSRJkqTNckEjSZIkabNc0EiSJEnaLBc0kiRJkjbLBY0kSZKkzXJBI0mSJGmzXNBIkiRJ\n2iwXNJIkSZI2ywWNJEmSpM1yQSNJkiRps1zQSJIkSdosFzSSJEmSNssFjSRJkqTNckEjSZIkabNc\n0EiSJEnaLBc0kiRJkjbLBY0kSZKkzXJBI0mSJGmzXNBIkiRJ2iwXNJIkSZI2ywWNJEmSpM1yQSNJ\nkiRps1zQSJIkSdosFzSSJEmSNssFjSRJkqTNckEjSZIkabNc0EiSJEnaLBc0kiRJkjbLBY0kSZKk\nzXJBI0mSJGmzXNBIkiRJ2iwXNJIkSZI2ywWNJEmSpM1yQSNJkiRps1zQSJIkSdosFzSSJEmSNssF\njSRJkqTNckEjSZIkabNc0EiSJEnaLBc0kiRJkjbLBY0kSZKkzXJBI0mSJGmzXNBIkiRJ2iwXNJIk\nSZI2ywWNJEmSpM1yQSNJkiRps1zQSJIkSdosFzSSJEmSNssFjSRJkqTNckEjSZIkabNc0EiSJEna\nLBc0kiRJkjbLBY0kSZKkzXJBI0mSJGmzXNBIkiRJ2iwXNJIkSZI2ywWNJEmSpM1yQSNJkiRps1zQ\nSJIkSdosFzSSJEmSNssFjSRJkqTNckEjSZIkabNc0EiSJEnaLBc0kiRJkjbLBY0kSZKkzXJBI0mS\nJGmzXNBIkiRJ2iwXNJIkSZI2ywWNJEmSpM1yQSNJkiRps1zQSJIkSdosFzSSJEmSNssFjSRJkqTN\nckEjSZIkabNc0EiSJEnaLBc0kiRJkjbLBY0kSZKkzXJBI0mSJGmzXNBIkiRJ2iwXNJIkSZI2ywWN\nJEmSpM1yQSNJkiRps1zQSJIkSdosFzSSJEmSNssFjSRJkqTNckEjSZIkabNc0FxYSulbU0rry34f\n+vyWUvoHUkr/U0rpUUppSSn93Jf9nvT55e25LKX0sZf9XqTnkVL67pTS9z3D837a/Rj/uku8L+m9\ncC6+M7zsN/AhlO//k16IlNIQEX8iIm4i4tff/+/ffKlvSp+PnMu0Vc8zbh3jeqqU0ldExFdHxL+f\nc37zJbwF5+JwQSN9PvoZEfFTI+LX5Jy//WW/GUnaopzz30wpXUXE9LLfi15pvyAiviUivj0iXsaC\nRmHJmfT56Cfd/+/nnvaklNL1Bd6L9J6llA4v+z3owy3nfM45f+j/9VtPlZ7pSXf2L/rNfFi5oHmB\nUkpfmVL6npTSbUrpr6WUvr7xnD6l9M0ppb+eUjqmlH4opfTbUko7PC/d10l+JqX0OKX051NKX5pS\n+nRK6ZOX+1R6laWUvj0ivjvu/vz8J+7rar8rpfTtKaW3Uko/PaX0Z1JKb0bEH3ni5742pfS9KaWb\nlNKPpZT+cErpCxuv/7UppR+4H9Pfl1L6JSmlP5RS+qGLfUi9aj56Pwb+bkrpsymlTz65EHmOOe7T\nKaU/nVL66rfnzYj4+vvv/eKU0l+6/x1vpZT+akrpt+Hndyml33w/1x5TSv9XSul38ffo819K6WFK\n6ffej7VjSulvp5T+XErp5+F5X5pS+gv359QfSSn9Bny/ytDcj/W3UkpflFL6s/c5xc+klL75Up9P\nr46U0ici4t+9f/jp+/GyPDF2fn9K6ZenlL4/Io4R8Y+mlL7q/nu/EK/VzGyllL4kpfQdKaUfvT9H\n/9WU0m99l/f10+7n3O9LKX38g/zMrypLzl6QlNKXRcSfjYgfjbs/RY4R8a33j5/0ByPi6yLiOyLi\nd0fEz4+I3xgRPysifun/2967B8u2LWR935iv7l5r7XPuvRCSqBEJEoLBUFhWxVgJxIACF1NRJAlJ\nIUU0GEwIPjEaEHxEvWWVIUaCF1KSQFIqAiqFGrSMF0SjRmPiVRMhgmDQBATPvWfvtbrna4z80WuH\nPX5jnH3WOffsXqvv+X5Vu87p7tnzMZ5zrv6+8T2z3XskfZmkb5f0ZyR90u3+/bRvnuW9kn5Y0pdL\n+r2S/qqkH5H0+Tr29z8t6Xsk/TodvTUKIXyhpG+Q9Fck/UYdf+H51ZJ+bgjhk59qgkMIny3pD0v6\nG7fbvVPH9vsPZP3u25Wg49j1Azq2iZ8l6T/Qsc39pttt7jrGpdv3/qCkr5P09ZK+N4TwMyR9h6T/\nXdJvljRK+uk6yjyOJxFCuN3m595+9+9I+pmSfo2kj5P0OW/pVZuHztfpWOe/T9L/KekjJP0rkj5B\nx3YkSe+S9D9K+qM6jmufK+k9IYT3p5T+9HP2nXT8Y/B3SvpLOs7Lnynpt4YQ2pTSb3nLr8Y8ZL5N\n0j8n6fMk/SpJP65jG/lHt59/mqR/W9LXSPoxST+o49x5pzkzHBf0+R4dx72v09EP+7GSfqGkr3iN\n73yspD93ew4/P6X0yhu/rDMkpeR/L+CfpD8m6VrST37mvY/XUYu73r7+JElR0nvx3d8taZX0qbev\nP0rSJOlbsd1X3n7/G+77ev3v4fyT9Km37eJznnnvv71tU/85tu0k/b86TvLDM++/+3YfX/XMe+/X\ncTDdPfPev3q73Q/c93X732n/Sfqq27r/erz/bZJ+9Pb/7zTG3b73927f+3Rs+6tu33/nc87l82/H\n1n8Z7/+K2+/+nPsuL/873T9Jr0j6r57z+ftu28W/98x7vaR/KOmPPPPeR9+23y945r2nY+lXY5/f\nIWkv6V33ff3+d9p/Ov6BcJX0U/F+vB2XPh7vf+rt9p+C92vt7bslfeDZe8nK8b/qdn/v0vGPQj+s\n48P2y/ddNqf8Z8nZCyCE0Oi44sUfSyn9g6fvp5S+V8e/kD/l3To+pX81dvF7dPzL52ffvv50Sa2k\n34/tft9beNrm7cF78fpn6/jA/LUppenpmymlP6XjX7k/W5JCCP+0pE+U9I0ppf0z232PpL/5ok/a\nPFiSjn81fJbvkfQRIYQr3X2Me8rfSyn9Wbz3gdv//uLbX2JqfK6Of4n/vhDCRzz9p+ONa5D08+56\nQebDgg9I+pdux63X4klK6Q8+fZFSmiX9L5L+2Tse47/G66+RNOg4XxvzlO+6vfd7w4QQPlLHPxr+\ngWfvJZ/Dz9RRcv4DOv4y81wf7YcbfqB5MfwTknaS/m7ls2cb9k/V8Wk82y6l9CM6Dsgf/cx2qmz3\nio5/iTLmLiwppR/Gex+t4w3n91W2/zv6iTb49L/fX9mu1s7N24e/j9dPx6R36u5j3FNqXqxvlvQX\nJf03kn4khPCHbr1czz7cfJykf0FHicWz/75Xx/b9UW/wmsx58xt0/APM/x1C+CshhK8KIXwMtuFY\n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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xa6c9b70>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Visualize the learned weights for each class\n",
    "w = best_softmax.W[:-1,:] # strip out the bias\n",
    "w = w.reshape(32, 32, 3, 10)\n",
    "\n",
    "w_min, w_max = np.min(w), np.max(w)\n",
    "\n",
    "classes = ['plane', 'car', 'bird', 'cat', 'deer', 'dog', 'frog', 'horse', 'ship', 'truck']\n",
    "for i in range(10):\n",
    "  plt.subplot(2, 5, i + 1)\n",
    "  \n",
    "  # Rescale the weights to be between 0 and 255\n",
    "  wimg = 255.0 * (w[:, :, :, i].squeeze() - w_min) / (w_max - w_min)\n",
    "  plt.imshow(wimg.astype('uint8'))\n",
    "  plt.axis('off')\n",
    "  plt.title(classes[i])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "anaconda-cloud": {},
  "kernelspec": {
   "display_name": "Python [default]",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.5.2"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}
